package ch.fusun.baron.server.rmi;

import ch.fusun.baron.core.service.UserListener;
import ch.fusun.baron.turn.TurnListener;

/**
 * Interface for the Game server
 */
public interface GameServer extends TurnListener, UserListener {

	/**
	 * Configures the server and starts listening for users
	 */
	void startup();

	/**
	 * Loads the state from a file
	 * 
	 * @param path
	 *            The path to the file
	 */
	void loadState(String path);

	/**
	 * Saves the current state into a file
	 * 
	 * @param path
	 *            The path to the file
	 */
	void saveState(String path);

	/**
	 * Changes the server from lobby to game phase
	 */
	void startGame();

}
